package br.org.espmessenger.middleware;

import java.rmi.Remote;
import java.rmi.RemoteException;

import br.org.espmessenger.modelo.MensagemConvite;
import br.org.espmessenger.modelo.Usuario;
import br.org.espmessenger.modelo.excecoes.ConviteJaEnviadoException;
import br.org.espmessenger.modelo.excecoes.LogonInvalidoException;
import br.org.espmessenger.modelo.excecoes.UsuarioInexistenteException;
import br.org.espmessenger.modelo.excecoes.UsuarioJaCadastradoException;

public interface ESPMessenger extends Remote {

	public abstract void registrarConvite(MensagemConvite convite)
			throws RemoteException, UsuarioInexistenteException,
			ConviteJaEnviadoException;

	public abstract void registrarNovaConta(Usuario usuario) 
			throws RemoteException, UsuarioJaCadastradoException;

	public abstract Usuario conectarUsuario(Usuario u) 
			throws RemoteException, LogonInvalidoException;

	public abstract Usuario desconectarUsuario(Usuario u) 
			throws RemoteException;

}